Data processing application programs, including information control application programs and, more particularly, customer information control application programs, regularly utilize an application programming interfaces (APIs) to access and manipulate various system and data resources such as customer database files, terminals, file attributes and more. The API typically provides a transparent connection between the data processing application programs and their respective system and data resources.
One API, known as the Customer Information Control System (CICS), is available from the IBM Corporation, Armonk, N.Y. CICS is a trademark of the IBM Corporation.
CICS is multithreaded software running as an on-line feature in a multitasking machine environment. CICS generally runs under the operating system as a high priority program that handles requests from application programs by building tasks to execute transactions invoked at a terminal during run-time of the application programs. In other words, CICS positions itself between the operating system and the application programs with the essential role of providing a suite of control and services functions that serve as an interface between the application programs and the operating system. Application programs, in turn, are developed for implementing the CICS services in order to form customer information database and/or data communication systems, by linking the CICS services with the application programs via, for example, a program library.
Hence, CICS provides a suite of functions for realizing the interface between such customer information control applications and their respective customer database or other system and data resources. The suite of functions of CICS API may be fashioned as a package in a conventional CICS process server (CPS).
The CPS is a multithreaded operating system capable of supporting multiple concurrent data processing application programs that invoke its suite of CICS functions. In a conventional data processing machine whose functionality is managed by an operating system, one or more than one CPS operates under the control of the operating system. The functionality of the data processing machine is associated with an address region being divided among its memory devices, including one or more of main memory, cache memory and virtual memory. In the conventional data processing machine, each CPS defines a distinct CICS region which occupies a segment of the address region, and each CPS is capable of communicating with another CPS.
Further, each CPS provides its suite of CICS functions to a particular group of concurrent customer information control applications for interfacing with the system and data resource within their CICS region. With these functions, the CPS offers access to information about the system and data resources. For example, through file control functions, the CPS offers access to the data resources such as records in database files.
However, in the conventional data processing machine, one CPS cannot provide a direct interface to system and data resources within the CICS region of another CPS. As a result, one customer information control application program in one CICS region cannot gain direct access to the system and data resources of a second customer information control application program in a different CICS region. Rather, a communication path must first be established from one CPS to the next CPS for transferring, accessing and manipulating information.
For example, in order to allow access to system and data resources, a shared address space which holds information about these resources is used. Each information table within this shared address space is accessed, one thread at a time, via a semaphore. As a result multiple concurrent threads compete for the right of entry to the shared address space.
Also for example, when browsing data sets in VSAM (virtual sequential access method) files, data processing application programs periodically transfer control to each other. When control is transferred to a program, it starts browsing at the point where the previous program stopped. To that end, information about the system and data sets, such as status or location (the point from which control passes to the next program for continued browsing or data manipulation) must be propagated from one program to the next. Hence, information must be transferred repeatedly among CPSs in order to maintain consistency of the information throughout the CICS region and in order to support these application programs reliably. This approach imposes a system performance penalty manifested by the substantial data transfer overhead.
As a result, conventional data processing machines are inflexible and cumbersome. Accordingly, a need exists for a more flexible data processing system. A need further exists for a data processing system in which access to system and data resources is not hindered by cumbersome mechanisms. The present invention addresses this and related purposes.